Convolutional codes are typically used for wireless data transfer. Often convolutional codes are used in applications such as mobile communications, digital video, radio, and satellite communications, among other applications. Digital communication use convolutional codes to encode transmitted information. One type of convolutional code is referred to as a “tail biting” convolutional code. A tail biting convolutional code is a code that begins and ends with the same state.
Various techniques are used to efficiently decode a tail biting convolutional code. A circular Viterbi technique with extra bits, e.g., Viterbi stages, may be used. The extra bits facilitate the convergence of a trellis. A trellis is a diagram or graph that may be used to decode a convolutional code. After a length of the trellis plus the extra bits is determined, a state having a best metric may be identified and used as a starting point for a traceback operation. The traceback operation may output an estimated number of message bits. For instance, in some cases as many as one hundred extra bits or more are used. However, this traditional approach suffers from performance loss and a large overhead leading to relatively poor results for shorter message lengths.
Another technique to decode a tail biting convolutional code may include a wrapped around Viterbi algorithm (WAVA) technique. A WAVA technique processes a tail biting trellis iteratively by exploring an initial state of a transmitted sequence though continuous Viterbi decoding and improving the decoding decision with iterations. Path metrics are used to derive a sufficient condition for the decision to be optimal. While the WAVA algorithm approaches maximum likelihood performance, several iterations matching a length of a trellis are required along with complicated stopping conditions. As a result, a WAVA algorithm is complex and has an inefficient processing time. Accordingly, improved techniques are needed to efficiently and optimally decode convolutional codes, such as a tail biting convolutional code, for example. It is with respect to these and other considerations that the present improvements have been needed.